package com.zmn.oms.services.interfaces.warranty;

import com.zmn.oms.model.entity.warranty.OrderWarranty;

import java.util.List;

/**
 * 类描述：保修卡
 * @author heciqi
 * @date 2018/11/29 16:05
 */
public interface OrderWarrantyService {

    /**
     * 查询订单保单code
     * @param orderIdList
     * @return
     */
    List<OrderWarranty> listOrderWarrantyCodeByOrderIdList(List<Long> orderIdList);

    /**
     * 查询订单保修卡收据 用于用户显示
     * @param orderIdList
     * @return
     */
    List<OrderWarranty> listOrderWarrantyByOrderIdList(List<Long> orderIdList);

    /**
     * 用户id，查询保修卡
     * @param userId
     * @return
     */
	List<OrderWarranty> listByUserId(Long userId);

    /**
     * 通过订单Id获取保单信息查主库
     * @param orderId 订单id
     * @return 保单DTO
     */
	OrderWarranty findByOrderIdByKeySrcMaster(Long orderId);

	/**
     * 通过订单Id获取保单信息
     * @param orderId 订单id
     * @return 保单DTO
     */
    OrderWarranty findByOrderId(Long orderId);

    /**
     * 保存保单
     * @param warranty 保单
     * @return 重置结果
     */
    Integer insertWarranty(OrderWarranty warranty);

    /**
     * 激活保单
     * @param orderId
     * @return 重置结果
     */
    Integer activeWarranty(Long orderId);

    /**
     * 更改保修卡状态
     *
     * @param orderId
     * @param type
     * @param status
     * @return
     */
    Integer updateWarrantyStatus(Long orderId, Integer status);

    /**
     * 更新保修卡类型
     * @param orderId
     * @param type
     * @return
     */
    Integer updateWarrantyType(Long orderId, Integer type);

    /**
     * 更新保修卡类型
     * @param orderId
     * @param userId
     * @return
     */
    Integer takeWarranty(Long orderId, Long userId);

    /**
     * 删除保修卡
     * @param orderId
     * @return
     */
    Integer deleteByOrderId(Long orderId);
}